home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1991-06-01 | 5.7 KB | 236 lines |
- 10 'Display city and startup routine for PitStop America
- 15 'Version 1.1 developed by FutureWave Shareware
- 20 'Programmed by M. Broughton Boone
- 25 ' A Shareware Program
- 100 OPEN "Fuel.dat" FOR OUTPUT AS #1
- 110 CLOSE #1
- 120 OPEN "Sleep.dat" FOR OUTPUT AS #1
- 130 CLOSE #1
- 140 OPEN "Route.dat" FOR OUTPUT AS #1
- 150 CLOSE #1
- 160 DAY = 1
- 170 'City Display Data Routine
- 180 'Var
- 190 'Var
- 200 DIM I(75):DIM C$(175):DIM S$(175): DIM M(175): DIM MA(175): DIM MN(175)
- 210 DIM CS$(75): DIM SS$(75): DIM MS(75):DIM H(75)
- 220 DIM RC$(75):DIM RHI(75): DIM RS$(75): DIM RMA(75)
- 225 DIM HI(100)
- 230 'Read cities from data
- 240 FOR E = 1 TO 75
- 250 READ C$(E),S$(E)
- 260 NEXT E
- 270 CLS
- 280 'Display cities
- 290 PRINT TAB(30);"Cities in Database"
- 300 X = 3: Y = 1
- 310 FOR E = 1 TO 75
- 320 IF X = 22 THEN Y = Y+20: X = 3
- 330 LOCATE X,Y: PRINT E;:LOCATE X,Y+4: PRINT C$(E);",";S$(E)
- 340 X = X + 1
- 350 NEXT E
- 360 'Determine points
- 370 LOCATE 23,10: INPUT "What is your starting number";S
- 380 LOCATE 23,10: PRINT " "
- 390 LOCATE 23,10: INPUT "What is your destination";D
- 400 LOCATE 23,10: PRINT " "
- 410 LOCATE 22,10: PRINT"You chose ";C$(S);",";S$(S);" & ";C$(D);",";S$(D);". Correct?";:INPUT Q$
- 420 LOCATE 22,10: PRINT " "
- 430 IF Q$ = "Y" OR Q$ = "y" THEN 440 ELSE 370
- 440 CS$ = C$(S): SS$ = S$(S): DC$ = C$(D): DS$ = S$(D)
- 450 LOCATE 23,10: INPUT "What Route will you be starting on: I-";IH
- 460 LOCATE 23,10: PRINT "Please wait while I load that information... "
- 465 IH$ = STR$(IH)
- 470 'Read in highway info
- 475 OPEN "I",#1,"Interste.dat"
- 480 WHILE NOT EOF(1)
- 485 INPUT #1,H,C$,S$,MA,M,MN
- 490 IF H = IH THEN C$(I) = C$: S$(I) = S$: MA(I) = MA: M(I) = M: MN(I) = MN: I = I+1
- 495 WEND
- 500 CLOSE #1
- 510 FOR X = 1 TO I
- 530 IF C$(X)=CS$ AND S$(X) = SS$ THEN GOSUB 1420
- 540 IF C$(X)=DC$ AND S$(X) = DS$ THEN GOSUB 1430
- 550 NEXT X
- 555 J = 1
- 560 OPEN "I",#1,"Intrstrc.dat"
- 565 WHILE NOT EOF(1)
- 570 INPUT #1,H,RC$,RS$,RHI,RMA
- 575 IF H = IH THEN RC$(J) = RC$: RS$(J) = RS$: RHI(J) = RHI: RMA(J) = RMA: J = J+1
- 580 WEND
- 585 CLOSE #1
- 610 OPEN "overview.dat" FOR OUTPUT AS #1
- 620 WRITE #1,CS$,SS$,DC$,DS$
- 630 CLOSE #1
- 640 IF K = 1 AND L = 1 THEN GOTO 1440 'load oneroute
- 650 IF K = 1 AND L <> 1 THEN GOTO 670
- 660 IF K <> 1 THEN GOTO 450
- 670 'Route Change Data Input
- 680 LOCATE 23,10: PRINT "Your destination is not on I-";IH;". Please wait"
- 690 OPEN "overview.dat" FOR OUTPUT AS #1
- 700 WRITE #1,CS$,SS$,DC$,DS$
- 710 CLOSE #1
- 720 'Display Route Change Info Subroutine
- 730 CLS
- 740 PRINT TAB(30);"Routes Connecting to I-";IH
- 750 HF = IH
- 760 X = 3: Y = 1
- 770 FOR P = 1 TO J-1
- 780 IF X = 22 THEN Y = Y+40: X = 3
- 790 LOCATE X,Y: PRINT P;:LOCATE X,Y+4: PRINT"I-";:LOCATE X,Y+6: PRINT RHI(P);:LOCATE X,Y+11: PRINT RC$(P);",";RS$(P)
- 800 X = X+1
- 810 NEXT P
- 820 LOCATE 23,10: PRINT "Number ( 1 -";P-1;") of new route";: INPUT A
- 830 IF A > P THEN 820: HT = RH(A)
- 840 HT = RHI(A): CD$ = RC$(A) : SD$ = RS$(A)
- 850 GOSUB 1490
- 870 'Determine inital segment data
- 880 OPEN "I",#1,"Driving.dat"
- 890 INPUT #1,AS,HD,AT$,MD,AT
- 900 CLOSE #1
- 910 OPEN "I",#1,"Refuel.dat"
- 920 INPUT #1,TC,MPG,B$,MT
- 930 CLOSE #1
- 940 'Mileage info
- 950 'Var
- 960 'var
- 970 SM = D-S: IF SM < 0 THEN F=-1 ELSE F = 1
- 980 SM = ABS(SM): TM = TM+ SM
- 990 'Refuel?
- 1000 ML = MT: CM = 0: T = 1 : J = SI
- 1010 J = SI+F
- 1020 CM = CM + M(J): ML = ML - M(J)
- 1030 IF ML < MN(J) THEN GOSUB 1070
- 1040 IF J = DI THEN 1130
- 1050 J = J+F
- 1060 GOTO 1020
- 1070 'Refuel
- 1080 OPEN "A",#1,"Fuel.dat"
- 1090 WRITE #1,C$(J),S$(J),CM
- 1100 CLOSE #1
- 1110 T = T+1: CM = 0: ML = MT
- 1120 RETURN
- 1130 'Sleep Subroutine
- 1140 DM = MD 'days miles = miles per day
- 1150 ED = 0: 'miles driven this day
- 1160 DAY = 1
- 1170 J = SI + F
- 1180 DM = DM - M(J): ED = ED + M(J)
- 1190 IF MN(J) > DM THEN GOSUB 1230
- 1200 IF J = DI THEN 1310
- 1210 J = J+F
- 1220 GOTO 1180
- 1230 'Sleep
- 1240 TR = ED/AS: 'todays hours (TR)
- 1250 TR = INT(TR+0.5)
- 1260 OPEN "A",#1,"Sleep.dat"
- 1270 WRITE #1,DAY,TR,C$(J),S$(J),ED
- 1280 CLOSE #1
- 1290 DM = MD: ED = 0: DAY = DAY+1
- 1300 RETURN
- 1310 'Route information
- 1320 OPEN "A",#1,"Route.dat"
- 1330 WRITE #1,CS$,SS$,CD$,SD$,HF,HT,SM
- 1340 CLOSE #1
- 1350 'Carryover Information
- 1360 OPEN "Carry.dat" FOR OUTPUT AS #1
- 1370 WRITE #1,CD$,SD$,DC$,DS$,DAY,SM,ED,ML,T,HT,TM,DM,CM
- 1380 CLOSE #1
- 1390 'Goto loop route sub-program
- 1400 CHAIN "Routing
- 1410 'Housekeeping
- 1420 SI = X: S = MA(X): K = 1: RETURN
- 1430 DI = X: D = MA(X): L = 1: RETURN
- 1440 OPEN "carry.dat" FOR OUTPUT AS #1
- 1450 HT$ = IH$: ML = MT: ED = 0:SM = 0:TM = 0:
- 1460 WRITE #1,CS$,SS$,DC$,DS$,DAY,SM,ED,ML,T,HT,TM,DM,CM
- 1470 CLOSE #1
- 1480 CHAIN "oneroute
- 1490 OPEN "I",#1,"interste.dat"
- 1495 I = 1
- 1500 WHILE NOT EOF(1)
- 1510 INPUT #1,H,C$,S$,MA,M,MN
- 1520 IF H = IH THEN C$(I) = C$: S$(I) = S$: MA(I) = MA: M(I) = M: MN(I) = MN: I = I+1
- 1530 WEND
- 1535 CLOSE #1
- 1536 FOR X = 1 TO I
- 1540 IF CD$ = C$(X) AND SD$ = S$(X) THEN DI = X: D = MA(X)
- 1550 IF CD$ = C$(X) AND SD$ = S$(X) THEN D = MA(X)
- 1560 NEXT X
- 1580 RETURN
- 1590 DATA Birmingham,AL
- 1600 DATA Mobile,AL
- 1610 DATA Phoenix,AZ
- 1620 DATA Tucson,AZ
- 1630 DATA Little Rock,AR
- 1640 DATA Los Angeles,CA
- 1650 DATA Sacramento,CA
- 1660 DATA San Diego,CA
- 1670 DATA San Francisco,CA
- 1680 DATA Hartford,CN
- 1690 DATA Denver,CO
- 1700 DATA Washington,DC
- 1710 DATA Wilmington,DE
- 1720 DATA Tampa,FL
- 1730 DATA Miami,FL
- 1740 DATA Atlanta,GA
- 1750 DATA Des Moines,IA
- 1760 DATA Boise,ID
- 1770 DATA Chicago,IL
- 1780 DATA Springfield,IL
- 1790 DATA Indianapolis,IN
- 1800 DATA Topeka,KS
- 1810 DATA Wichita,KS
- 1820 DATA Lexington,KY
- 1830 DATA Louisville,KY
- 1840 DATA Baton Rouge,LA
- 1850 DATA New Orleans,LA
- 1860 DATA Boston,MA
- 1870 DATA Baltimore,MD
- 1880 DATA Detroit,MI
- 1890 DATA Grand Rapids,MI
- 1900 DATA Kansas City,MO
- 1910 DATA St Louis,MO
- 1920 DATA Minneapolis,MN
- 1930 DATA Butte,MT
- 1940 DATA Helena,MT
- 1950 DATA Missoula,MT
- 1960 DATA Charlotte,NC
- 1970 DATA Greensboro,NC
- 1980 DATA Raleigh,NC
- 1990 DATA Bismark,ND
- 2000 DATA Lincoln,NE
- 2010 DATA Omaha,NE
- 2020 DATA Concord,NH
- 2030 DATA Newark,NJ
- 2040 DATA Trenton,NJ
- 2050 DATA Albuquerque,NM
- 2060 DATA Las Vegas,NV
- 2070 DATA Reno,NV
- 2080 DATA Buffalo,NY
- 2090 DATA New York,NY
- 2100 DATA Cincinnati,OH
- 2110 DATA Cleveland,OH
- 2120 DATA Columbus,OH
- 2130 DATA Toledo,OH
- 2140 DATA Oklahoma City,OK
- 2150 DATA Tulsa,OK
- 2160 DATA Portland,OR
- 2170 DATA Philadelphia,PA
- 2180 DATA Pittsburg,PA
- 2190 DATA Providence,RI
- 2200 DATA Charleston,SC
- 2210 DATA Columbia,SC
- 2220 DATA Knoxville,TN
- 2230 DATA Memphis,TN
- 2240 DATA Nashville,TN
- 2250 DATA Dallas,TX
- 2260 DATA Houston,TX
- 2270 DATA Salt Lake Cty,UT
- 2280 DATA Richmond,VA
- 2290 DATA Montpelier,VT
- 2300 DATA Seattle,WA
- 2310 DATA Spokane,WA
- 2320 DATA Milwaukee,WI
- 2330 DATA Cheyenne,WY
-